home *** CD-ROM | disk | FTP | other *** search
/ Software 2000 / Software 2000 Volume 1 (Disc 1 of 2).iso / utilities / u497.dms / u497.adf / sprite-driver.s < prev    next >
Text File  |  1988-04-14  |  11KB  |  571 lines

  1. ;    *************
  2. ;    ** sprite0 **
  3. ;    *************
  4.  
  5. sn_sinus:
  6.     clr.l    d0
  7.     clr.l    d1
  8.     move.b    sn_data+1024,d0
  9.     move.b    sn_data+1056,d1
  10.     add.b    d1,sn_data+1024
  11.     lea.l    sn_data,a0
  12.     asl    #1,d0
  13.     move.w    (a0,d0),d0
  14.     cmp.b    #0,sn_data+1060
  15.     beq    sn_00
  16.     lsr.w    #1,d0
  17. sn_00    move.w    d0,sn_data+1064
  18.     move.b    sn_data+1032,d0
  19.     move.b    sn_data+1057,d1
  20.     add.b    d1,sn_data+1032
  21.     lea.l    sn_data,a0
  22.     asl    #1,d0
  23.     move.w    (a0,d0),d0
  24.     cmp.b    #0,sn_data+1061
  25.     beq    sn_01
  26.     lsr.w    #1,d0
  27. sn_01    add.w    d0,sn_data+1064
  28.     lsr.w    #1,sn_data+1064
  29.     clr.l    d0
  30.     move.b    sn_data+1068,d0
  31.     add.w    d0,sn_data+1064
  32.     move.b    sn_data+1065,sn_data+1070
  33.     and.b    #$f8,sn_data+1073
  34.     btst    #8,sn_data+1064        
  35.     beq    sn_02
  36.     or.b    #4,sn_data+1073
  37. sn_02    add.w    #$20,sn_data+1064
  38.     move.b    sn_data+1065,sn_data+1072
  39.     btst    #8,sn_data+1064
  40.     beq    sn_03
  41.     or.b    #2,sn_data+1073
  42.  
  43. sn_03    move.b    sn_data+1040,d0
  44.     move.b    sn_data+1058,d1
  45.     add.b    d1,sn_data+1040
  46.     lea.l    sn_data+512,a0
  47.     asl    #1,d0
  48.     move.w    (a0,d0),d0
  49.     cmp.b    #0,sn_data+1062
  50.     beq    sn_04
  51.     lsr.w    #1,d0
  52. sn_04    move.w    d0,sn_data+1066
  53.     clr.l    d0
  54.     clr.l    d1
  55.     move.b    sn_data+1048,d0
  56.     move.b    sn_data+1059,d1
  57.     add.b    d1,sn_data+1048
  58.     lea.l    sn_data+512,a0
  59.     asl    #1,d0
  60.     move.w    (a0,d0),d0
  61.     cmp.b    #0,sn_data+1063
  62.     beq    sn_05
  63.     lsr.w    #1,d0
  64. sn_05    add.w    d0,sn_data+1066
  65.     lsr.w    #1,sn_data+1066
  66.     lsr.w    #1,sn_data+1066
  67.     bcc    sn_06
  68.     or.b    #1,sn_data+1073
  69. sn_06    clr.l    d0
  70.     move.b    sn_data+1069,d0
  71.     add.w    d0,sn_data+1066
  72.     move.b    sn_data+1067,sn_data+1071
  73.  
  74. ;    *************
  75. ;    ** sprite1 **
  76. ;    *************
  77.  
  78.     clr.l    d0
  79.     clr.l    d1
  80.     move.b    sn_data+1025,d0
  81.     move.b    sn_data+1056,d1
  82.     add.b    d1,sn_data+1025
  83.     lea.l    sn_data,a0
  84.     asl    #1,d0
  85.     move.w    (a0,d0),d0
  86.     cmp.b    #0,sn_data+1060
  87.     beq    sn_10
  88.     lsr.w    #1,d0
  89. sn_10    move.w    d0,sn_data+1064
  90.     move.b    sn_data+1033,d0
  91.     move.b    sn_data+1057,d1
  92.     add.b    d1,sn_data+1033
  93.     lea.l    sn_data,a0
  94.     asl    #1,d0
  95.     move.w    (a0,d0),d0
  96.     cmp.b    #0,sn_data+1061
  97.     beq    sn_11
  98.     lsr.w    #1,d0
  99. sn_11    add.w    d0,sn_data+1064
  100.     lsr.w    #1,sn_data+1064
  101.     clr.l    d0
  102.     move.b    sn_data+1068,d0
  103.     add.w    d0,sn_data+1064
  104.     move.b    sn_data+1065,sn_data+1074
  105.     and.b    #$f8,sn_data+1077
  106.     btst    #8,sn_data+1064
  107.     beq    sn_12
  108.     or.b    #4,sn_data+1077
  109. sn_12    add.w    #$20,sn_data+1064
  110.     move.b    sn_data+1065,sn_data+1076
  111.     btst    #8,sn_data+1064
  112.     beq    sn_13
  113.     or.b    #2,sn_data+1077
  114. sn_13    move.b    sn_data+1041,d0
  115.     move.b    sn_data+1058,d1
  116.     add.b    d1,sn_data+1041
  117.     lea.l    sn_data+512,a0
  118.     asl    #1,d0
  119.     move.w    (a0,d0),d0
  120.     cmp.b    #0,sn_data+1062
  121.     beq    sn_14
  122.     lsr.w    #1,d0
  123. sn_14    move.w    d0,sn_data+1066
  124.     clr.l    d0
  125.     clr.l    d1
  126.     move.b    sn_data+1049,d0
  127.     move.b    sn_data+1059,d1
  128.     add.b    d1,sn_data+1049
  129.     lea.l    sn_data+512,a0
  130.     asl    #1,d0
  131.     move.w    (a0,d0),d0
  132.     cmp.b    #0,sn_data+1063
  133.     beq    sn_15
  134.     lsr.w    #1,d0
  135. sn_15    add.w    d0,sn_data+1066
  136.     lsr.w    #1,sn_data+1066
  137.     lsr.w    #1,sn_data+1066
  138.     bcc    sn_16
  139.     or.b    #1,sn_data+1077
  140. sn_16    clr.l    d0
  141.     move.b    sn_data+1069,d0
  142.     add.w    d0,sn_data+1066
  143.     move.b    sn_data+1067,sn_data+1075
  144.  
  145. ;    *************
  146. ;    ** sprite2 **
  147. ;    *************
  148.  
  149.     clr.l    d0
  150.     clr.l    d1
  151.     move.b    sn_data+1026,d0
  152.     move.b    sn_data+1056,d1
  153.     add.b    d1,sn_data+1026
  154.     lea.l    sn_data,a0
  155.     asl    #1,d0
  156.     move.w    (a0,d0),d0
  157.     cmp.b    #0,sn_data+1060
  158.     beq    sn_20
  159.     lsr.w    #1,d0
  160. sn_20    move.w    d0,sn_data+1064
  161.     move.b    sn_data+1034,d0
  162.     move.b    sn_data+1057,d1
  163.     add.b    d1,sn_data+1034
  164.     lea.l    sn_data,a0
  165.     asl    #1,d0
  166.     move.w    (a0,d0),d0
  167.     cmp.b    #0,sn_data+1061
  168.     beq    sn_21
  169.     lsr.w    #1,d0
  170. sn_21    add.w    d0,sn_data+1064
  171.     lsr.w    #1,sn_data+1064
  172.     clr.l    d0
  173.     move.b    sn_data+1068,d0
  174.     add.w    d0,sn_data+1064
  175.     move.b    sn_data+1065,sn_data+1078
  176.     and.b    #$f8,sn_data+1081
  177.     btst    #8,sn_data+1064
  178.     beq    sn_22
  179.     or.b    #4,sn_data+1081
  180. sn_22    add.w    #$20,sn_data+1064
  181.     move.b    sn_data+1065,sn_data+1080
  182.     btst    #8,sn_data+1064
  183.     beq    sn_23
  184.     or.b    #2,sn_data+1081
  185. sn_23    move.b    sn_data+1042,d0
  186.     move.b    sn_data+1058,d1
  187.     add.b    d1,sn_data+1042
  188.     lea.l    sn_data+512,a0
  189.     asl    #1,d0
  190.     move.w    (a0,d0),d0
  191.     cmp.b    #0,sn_data+1062
  192.     beq    sn_24
  193.     lsr.w    #1,d0
  194. sn_24    move.w    d0,sn_data+1066
  195.     clr.l    d0
  196.     clr.l    d1
  197.     move.b    sn_data+1050,d0
  198.     move.b    sn_data+1059,d1
  199.     add.b    d1,sn_data+1050
  200.     lea.l    sn_data+512,a0
  201.     asl    #1,d0
  202.     move.w    (a0,d0),d0
  203.     cmp.b    #0,sn_data+1063
  204.     beq    sn_25
  205.     lsr.w    #1,d0
  206. sn_25    add.w    d0,sn_data+1066
  207.     lsr.w    #1,sn_data+1066
  208.     lsr.w    #1,sn_data+1066
  209.     bcc    sn_26
  210.     or.b    #1,sn_data+1081
  211. sn_26    clr.l    d0
  212.     move.b    sn_data+1069,d0
  213.     add.w    d0,sn_data+1066
  214.     move.b    sn_data+1067,sn_data+1079
  215.  
  216. ;    *************
  217. ;    ** sprite3 **
  218. ;    *************
  219.  
  220.     clr.l    d0
  221.     clr.l    d1
  222.     move.b    sn_data+1027,d0
  223.     move.b    sn_data+1056,d1
  224.     add.b    d1,sn_data+1027
  225.     lea.l    sn_data,a0
  226.     asl    #1,d0
  227.     move.w    (a0,d0),d0
  228.     cmp.b    #0,sn_data+1060
  229.     beq    sn_30
  230.     lsr.w    #1,d0
  231. sn_30    move.w    d0,sn_data+1064
  232.     move.b    sn_data+1035,d0
  233.     move.b    sn_data+1057,d1
  234.     add.b    d1,sn_data+1035
  235.     lea.l    sn_data,a0
  236.     asl    #1,d0
  237.     move.w    (a0,d0),d0
  238.     cmp.b    #0,sn_data+1061
  239.     beq    sn_31
  240.     lsr.w    #1,d0
  241. sn_31    add.w    d0,sn_data+1064
  242.     lsr.w    #1,sn_data+1064
  243.     clr.l    d0
  244.     move.b    sn_data+1068,d0
  245.     add.w    d0,sn_data+1064
  246.     move.b    sn_data+1065,sn_data+1082
  247.     and.b    #$f8,sn_data+1085
  248.     btst    #8,sn_data+1064
  249.     beq    sn_32
  250.     or.b    #4,sn_data+1085
  251. sn_32    add.w    #$20,sn_data+1064
  252.     move.b    sn_data+1065,sn_data+1084
  253.     btst    #8,sn_data+1064
  254.     beq    sn_33
  255.     or.b    #2,sn_data+1085
  256. sn_33    move.b    sn_data+1043,d0
  257.     move.b    sn_data+1058,d1
  258.     add.b    d1,sn_data+1043
  259.     lea.l    sn_data+512,a0
  260.     asl    #1,d0
  261.     move.w    (a0,d0),d0
  262.     cmp.b    #0,sn_data+1062
  263.     beq    sn_34
  264.     lsr.w    #1,d0
  265. sn_34    move.w    d0,sn_data+1066
  266.     clr.l    d0
  267.     clr.l    d1
  268.     move.b    sn_data+1051,d0
  269.     move.b    sn_data+1059,d1
  270.     add.b    d1,sn_data+1051
  271.     lea.l    sn_data+512,a0
  272.     asl    #1,d0
  273.     move.w    (a0,d0),d0
  274.     cmp.b    #0,sn_data+1063
  275.     beq    sn_35
  276.     lsr.w    #1,d0
  277. sn_35    add.w    d0,sn_data+1066
  278.     lsr.w    #1,sn_data+1066
  279.     lsr.w    #1,sn_data+1066
  280.     bcc    sn_36
  281.     or.b    #1,sn_data+1085
  282. sn_36    clr.l    d0
  283.     move.b    sn_data+1069,d0
  284.     add.w    d0,sn_data+1066
  285.     move.b    sn_data+1067,sn_data+1083
  286.  
  287. ;    *************
  288. ;    ** sprite4 **
  289. ;    *************
  290.  
  291.     clr.l    d0
  292.     clr.l    d1
  293.     move.b    sn_data+1028,d0
  294.     move.b    sn_data+1056,d1
  295.     add.b    d1,sn_data+1028
  296.     lea.l    sn_data,a0
  297.     asl    #1,d0
  298.     move.w    (a0,d0),d0
  299.     cmp.b    #0,sn_data+1060
  300.     beq    sn_40
  301.     lsr.w    #1,d0
  302. sn_40    move.w    d0,sn_data+1064
  303.     move.b    sn_data+1036,d0
  304.     move.b    sn_data+1057,d1
  305.     add.b    d1,sn_data+1036
  306.     lea.l    sn_data,a0
  307.     asl    #1,d0
  308.     move.w    (a0,d0),d0
  309.     cmp.b    #0,sn_data+1061
  310.     beq    sn_41
  311.     lsr.w    #1,d0
  312. sn_41    add.w    d0,sn_data+1064
  313.     lsr.w    #1,sn_data+1064
  314.     clr.l    d0
  315.     move.b    sn_data+1068,d0
  316.     add.w    d0,sn_data+1064
  317.     move.b    sn_data+1065,sn_data+1086
  318.     and.b    #$f8,sn_data+1089
  319.     btst    #8,sn_data+1064
  320.     beq    sn_42
  321.     or.b    #4,sn_data+1089
  322. sn_42    add.w    #$20,sn_data+1064
  323.     move.b    sn_data+1065,sn_data+1088
  324.     btst    #8,sn_data+1064
  325.     beq    sn_43
  326.     or.b    #2,sn_data+1089
  327. sn_43    move.b    sn_data+1044,d0
  328.     move.b    sn_data+1058,d1
  329.     add.b    d1,sn_data+1044
  330.     lea.l    sn_data+512,a0
  331.     asl    #1,d0
  332.     move.w    (a0,d0),d0
  333.     cmp.b    #0,sn_data+1062
  334.     beq    sn_44
  335.     lsr.w    #1,d0
  336. sn_44    move.w    d0,sn_data+1066
  337.     clr.l    d0
  338.     clr.l    d1
  339.     move.b    sn_data+1052,d0
  340.     move.b    sn_data+1059,d1
  341.     add.b    d1,sn_data+1052
  342.     lea.l    sn_data+512,a0
  343.     asl    #1,d0
  344.     move.w    (a0,d0),d0
  345.     cmp.b    #0,sn_data+1063
  346.     beq    sn_45
  347.     lsr.w    #1,d0
  348. sn_45    add.w    d0,sn_data+1066
  349.     lsr.w    #1,sn_data+1066
  350.     lsr.w    #1,sn_data+1066
  351.     bcc    sn_46
  352.     or.b    #1,sn_data+1089
  353. sn_46    clr.l    d0
  354.     move.b    sn_data+1069,d0
  355.     add.w    d0,sn_data+1066
  356.     move.b    sn_data+1067,sn_data+1087
  357.  
  358. ;    *************
  359. ;    ** sprite5 **
  360. ;    *************
  361.  
  362.     clr.l    d0
  363.     clr.l    d1
  364.     move.b    sn_data+1029,d0
  365.     move.b    sn_data+1056,d1
  366.     add.b    d1,sn_data+1029
  367.     lea.l    sn_data,a0
  368.     asl    #1,d0
  369.     move.w    (a0,d0),d0
  370.     cmp.b    #0,sn_data+1060
  371.     beq    sn_50
  372.     lsr.w    #1,d0
  373. sn_50    move.w    d0,sn_data+1064
  374.     move.b    sn_data+1037,d0
  375.     move.b    sn_data+1057,d1
  376.     add.b    d1,sn_data+1037
  377.     lea.l    sn_data,a0
  378.     asl    #1,d0
  379.     move.w    (a0,d0),d0
  380.     cmp.b    #0,sn_data+1061
  381.     beq    sn_51
  382.     lsr.w    #1,d0
  383. sn_51    add.w    d0,sn_data+1064
  384.     lsr.w    #1,sn_data+1064
  385.     clr.l    d0
  386.     move.b    sn_data+1068,d0
  387.     add.w    d0,sn_data+1064
  388.     move.b    sn_data+1065,sn_data+1090
  389.     and.b    #$f8,sn_data+1093
  390.     btst    #8,sn_data+1064
  391.     beq    sn_52
  392.     or.b    #4,sn_data+1093
  393. sn_52    add.w    #$20,sn_data+1064
  394.     move.b    sn_data+1065,sn_data+1092
  395.     btst    #8,sn_data+1064
  396.     beq    sn_53
  397.     or.b    #2,sn_data+1093
  398. sn_53    move.b    sn_data+1045,d0
  399.     move.b    sn_data+1058,d1
  400.     add.b    d1,sn_data+1045
  401.     lea.l    sn_data+512,a0
  402.     asl    #1,d0
  403.     move.w    (a0,d0),d0
  404.     cmp.b    #0,sn_data+1062
  405.     beq    sn_54
  406.     lsr.w    #1,d0
  407. sn_54    move.w    d0,sn_data+1066
  408.     clr.l    d0
  409.     clr.l    d1
  410.     move.b    sn_data+1053,d0
  411.     move.b    sn_data+1059,d1
  412.     add.b    d1,sn_data+1053
  413.     lea.l    sn_data+512,a0
  414.     asl    #1,d0
  415.     move.w    (a0,d0),d0
  416.     cmp.b    #0,sn_data+1063
  417.     beq    sn_55
  418.     lsr.w    #1,d0
  419. sn_55    add.w    d0,sn_data+1066
  420.     lsr.w    #1,sn_data+1066
  421.     lsr.w    #1,sn_data+1066
  422.     bcc    sn_56
  423.     or.b    #1,sn_data+1093
  424. sn_56    clr.l    d0
  425.     move.b    sn_data+1069,d0
  426.     add.w    d0,sn_data+1066
  427.     move.b    sn_data+1067,sn_data+1091
  428.  
  429. ;    *************
  430. ;    ** sprite6 **
  431. ;    *************
  432.  
  433.     clr.l    d0
  434.     clr.l    d1
  435.     move.b    sn_data+1030,d0
  436.     move.b    sn_data+1056,d1
  437.     add.b    d1,sn_data+1030
  438.     lea.l    sn_data,a0
  439.     asl    #1,d0
  440.     move.w    (a0,d0),d0
  441.     cmp.b    #0,sn_data+1060
  442.     beq    sn_60
  443.     lsr.w    #1,d0
  444. sn_60    move.w    d0,sn_data+1064
  445.     move.b    sn_data+1038,d0
  446.     move.b    sn_data+1057,d1
  447.     add.b    d1,sn_data+1038
  448.     lea.l    sn_data,a0
  449.     asl    #1,d0
  450.     move.w    (a0,d0),d0
  451.     cmp.b    #0,sn_data+1061
  452.     beq    sn_61
  453.     lsr.w    #1,d0
  454. sn_61    add.w    d0,sn_data+1064
  455.     lsr.w    #1,sn_data+1064
  456.     clr.l    d0
  457.     move.b    sn_data+1068,d0
  458.     add.w    d0,sn_data+1064
  459.     move.b    sn_data+1065,sn_data+1094
  460.     and.b    #$f8,sn_data+1097
  461.     btst    #8,sn_data+1064
  462.     beq    sn_62
  463.     or.b    #4,sn_data+1097
  464. sn_62    add.w    #$20,sn_data+1064
  465.     move.b    sn_data+1065,sn_data+1096
  466.     btst    #8,sn_data+1064
  467.     beq    sn_63
  468.     or.b    #2,sn_data+1097
  469. sn_63    move.b    sn_data+1046,d0
  470.     move.b    sn_data+1058,d1
  471.     add.b    d1,sn_data+1046
  472.     lea.l    sn_data+512,a0
  473.     asl    #1,d0
  474.     move.w    (a0,d0),d0
  475.     cmp.b    #0,sn_data+1062
  476.     beq    sn_64
  477.     lsr.w    #1,d0
  478. sn_64    move.w    d0,sn_data+1066
  479.     clr.l    d0
  480.     clr.l    d1
  481.     move.b    sn_data+1054,d0
  482.     move.b    sn_data+1059,d1
  483.     add.b    d1,sn_data+1054
  484.     lea.l    sn_data+512,a0
  485.     asl    #1,d0
  486.     move.w    (a0,d0),d0
  487.     cmp.b    #0,sn_data+1063
  488.     beq    sn_65
  489.     lsr.w    #1,d0
  490. sn_65    add.w    d0,sn_data+1066
  491.     lsr.w    #1,sn_data+1066
  492.     lsr.w    #1,sn_data+1066
  493.     bcc    sn_66
  494.     or.b    #1,sn_data+1097
  495. sn_66    clr.l    d0
  496.     move.b    sn_data+1069,d0
  497.     add.w    d0,sn_data+1066
  498.     move.b    sn_data+1067,sn_data+1095
  499.  
  500. ;    *************
  501. ;    ** sprite7 **
  502. ;    *************
  503.  
  504.     clr.l    d0
  505.     clr.l    d1
  506.     move.b    sn_data+1031,d0
  507.     move.b    sn_data+1056,d1
  508.     add.b    d1,sn_data+1031
  509.     lea.l    sn_data,a0
  510.     asl    #1,d0
  511.     move.w    (a0,d0),d0
  512.     cmp.b    #0,sn_data+1060
  513.     beq    sn_70
  514.     lsr.w    #1,d0
  515. sn_70    move.w    d0,sn_data+1064
  516.     move.b    sn_data+1039,d0
  517.     move.b    sn_data+1057,d1
  518.     add.b    d1,sn_data+1039
  519.     lea.l    sn_data,a0
  520.     asl    #1,d0
  521.     move.w    (a0,d0),d0
  522.     cmp.b    #0,sn_data+1061
  523.     beq    sn_71
  524.     lsr.w    #1,d0
  525. sn_71    add.w    d0,sn_data+1064
  526.     lsr.w    #1,sn_data+1064
  527.     clr.l    d0
  528.     move.b    sn_data+1068,d0
  529.     add.w    d0,sn_data+1064
  530.     move.b    sn_data+1065,sn_data+1098
  531.     and.b    #$f8,sn_data+1101
  532.     btst    #8,sn_data+1064
  533.     beq    sn_72
  534.     or.b    #4,sn_data+1101
  535. sn_72    add.w    #$20,sn_data+1064
  536.     move.b    sn_data+1065,sn_data+1100
  537.     btst    #8,sn_data+1064
  538.     beq    sn_73
  539.     or.b    #2,sn_data+1101
  540. sn_73    move.b    sn_data+1047,d0
  541.     move.b    sn_data+1058,d1
  542.     add.b    d1,sn_data+1047
  543.     lea.l    sn_data+512,a0
  544.     asl    #1,d0
  545.     move.w    (a0,d0),d0
  546.     cmp.b    #0,sn_data+1062
  547.     beq    sn_74
  548.     lsr.w    #1,d0
  549. sn_74    move.w    d0,sn_data+1066
  550.     clr.l    d0
  551.     clr.l    d1
  552.     move.b    sn_data+1055,d0
  553.     move.b    sn_data+1059,d1
  554.     add.b    d1,sn_data+1055
  555.     lea.l    sn_data+512,a0
  556.     asl    #1,d0
  557.     move.w    (a0,d0),d0
  558.     cmp.b    #0,sn_data+1063
  559.     beq    sn_75
  560.     lsr.w    #1,d0
  561. sn_75    add.w    d0,sn_data+1066
  562.     lsr.w    #1,sn_data+1066
  563.     lsr.w    #1,sn_data+1066
  564.     bcc    sn_76
  565.     or.b    #1,sn_data+1101
  566. sn_76    clr.l    d0
  567.     move.b    sn_data+1069,d0
  568.     add.w    d0,sn_data+1066
  569.     move.b    sn_data+1067,sn_data+1099
  570.     rts
  571.